
package com.barnabe.filters;

import java.awt.image.BufferedImage;

/* @author Arthur F. Zanona */

public class PontosSalientes extends Filtro{
     public static BufferedImage executar ( BufferedImage imagem){
        Integer[][] matriz = {{-2, -2, -2}, {-2, 8, -2}, {-2, -2, -2}};
        int altura = imagem.getRaster().getHeight() - matriz.length;
        int largura = imagem.getRaster().getWidth() - matriz.length;
        int hs = 0;
        int[] rgb = new int[3];
        BufferedImage temp = new BufferedImage(imagem.getRaster().getWidth(), imagem.getRaster().getHeight(), imagem.getType());
        for (int i = 0; i < largura; i++) {
            for (int j = 0; j < altura; j++) {
                for (int k = 0; k < matriz.length; k++) {
                    for (int l = 0; l < matriz.length; l++) {
                        imagem.getRaster().getPixel(i + k, j + l, rgb);
                        hs += matriz[k][l] * rgb[0];
                    }
                    hs = hs > 255 ? 255 : hs;
                    hs = hs < 0 ? 0 : hs;
                    temp.getRaster().setPixel(i, j, new int[]{hs, hs, hs});
                }
            }
        }
        return temp;
    }

}
